System And Method For Estimating And Limiting Usage Of Network Applications

ABSTRACT

A system and method to estimate and to limit usage time of network applications by a centrally located router is provided. The router first modifies the Domain Name System (DNS) protocol&#39;s Time To Live (TTL) values to a fix value, then it counts the number of DNS queries for an application. Number of queries multiplied by the fixed TTL value gives estimated duration of the application.

CROSS-REFERENCE TO RELATED APPLICATION

The present application claims priority to U.S. Provisional Patent Application No. 62/464,931, filed on Feb. 28, 2017, the disclosure of which is incorporated by reference in its entirety.

BACKGROUND

As we are more connected to Internet by many devices, estimating usage time of network applications connected to Internet has become more important for our lives, in terms of parental controls, employee monitoring, malware protection, etc. Most of these devices are mobile, have many types, and reside in many locations. Measuring usage time of Internet applications locally on each device is not only unpractical, but it is also expensive. This invention presents a practical and inexpensive way of estimating Internet usage time of network applications, as well as limiting their usage times.

On Internet, every service or website is referred by its domain name which is stored on Domain Name Servers (DNS server). As shown in FIG. 1, before a PC 100 wants to connect to a web server 130, first it send a query to its DNS server 140 to find the Internet Protocol (IP) address of the website. After the device gets the response from its DNS server, it connects to the website.

Every response from the DNS server has an expiration time called TTL embedded in the DNS response packet. The main reasons for using TTL are to adjust DNS load on authoritative DNS servers, to control propagation speed of DNS record changes, as well as to reduce effects of DNS cache poisoning.

SUMMARY OF THE INVENTION

This invention presents a system and a method to estimate and to limit usage time of network applications. Referring to FIG. 1, an embodiment of the invention centrally located in a network, such as a router 120, modifies TTL values in DNS responses for a website to a fixed time, and then counts DNS queries for that site to estimate the usage. To limit the usage of an application to a predefined duration, first this duration is converted to number of DNS queries, and then when the count of DNS query is achieved, the application is blocked by the router.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts an embodiment of the invention where a router 120 is connected to the Internet 150 and runs a software to modify DNS responses from a DNS server 140 to resolve IP address of a web server 130, which is being accessed by a PC 100 and a smartphone 110.

DETAILED DESCRIPTION

This invention presents a system and a method to estimate usage time of network applications. Referring to FIG. 1, one embodiment of the invention uses an Internet connected home router 120. User devices such as a smartphone 110 starts a network application which needs to connect to a web server 130. First the smartphone sends a DNS query to resolve the IP address of the web server to its DNS server 140. Then the DNS server responds with the IP address along with TTL value of the response which is set by the owner of the DNS server.

The router modifies TTL value in the DNS response to a predefined fixed time such as 1 minute. Then the router forwards the modified DNS response to the smartphone.

Since the smartphone's DNS cache value expires at the end of the fixed time (according to the previous example, every 1 minute), the smartphone continuously sends a new DNS query at the expiration of each TTL value while the network application is running.

The router creates a table for each device connected to it. In that table, the router lists all network applications belonging to those devices. Next to each network application a counter shows DNS queries sent by each application. When a new DNS query is received from a network application, the router increments the counter for that network application.

The router is configured with a predefined inactivity timer which is set for each network application. The inactivity timer for an application is reset when there is new DNS query is received from that network application. When the inactivity timer expires for an application, that application is said finished its Internet communication, and the usage duration for that application is equal to multiplication of fixed TTL timer value and the number of DNS queries.

To put a time limit on a device's network application, first that time limit is converted to number of DNS queries, by dividing the duration of the time limit by the fixed TTL value. This would yield number DNS queries to be allowed from that network application. When this count of DNS queries is achieved, the network application is blocked by the router, hence the time limit is enforced. 

1.-9. (canceled)
 10. A system to estimate a duration of a network application on a device connected to the Internet, wherein the system is configured to modify a TTL value of one or more DNS responses for said network application to a fixed value, and then to count one or more DNS queries made by said network application.
 11. The system of claim 10, wherein the network application is a social media application running on a smartphone.
 12. The system of claim 10, wherein the system comprises a software running on a router connecting one or more devices to the Internet.
 13. A method of estimating a duration of a network application on a device connected to the Internet, using the system of claim 10, said method comprising: modifying a TTL value of one or more DNS responses for said network application to a fixed value, and then, counting one or more DNS queries made by said network application.
 14. The method of claim 13, wherein the network application is a social media application running on a smartphone.
 15. The method of claim 13, wherein the system comprises a software running on a router connecting one or more devices to the Internet.
 16. The system of claim 10, further comprising a predefined inactivity timer, implemented in said system, and configured to declare that a network application has ended communicating with the Internet when there is no DNS query for said network application.
 17. The system of claim 16, wherein said system maintains a unique predefined inactivity timer for one or more network applications on each of one or more devices connected to said system.
 18. The system of claim 16, wherein said predefined inactivity timer decrements for a network application when there is no DNS query from that network application.
 19. The system of claim 16, wherein said predefined inactivity timer resets to a predefined value for a network application, when said network application sends a new DNS query.
 20. The system of claim 16, wherein when said inactivity timer expires for a network application, and an estimated duration of said network application is defined to be a number of DNS queries from said network application, multiplied by a fixed TTL value.
 21. The system of claim 10, further configured to limit a usage time of a network application on a device to a desired duration, wherein the system converts said duration to a number of DNS queries by dividing the duration with a fixed TTL value, and further counts DNS queries from said network application, and wherein when the system receives calculated DNS queries for said network application, then the system blocks access between said network application and the Internet.
 22. A method of limiting a usage time of a network application on a device to a desired duration, implemented on a system of claim 21, said method comprising: converting said duration to a number of DNS queries by dividing the duration with a fixed TTL value, and counting DNS queries from said network application, and when the system receives a calculated DNS queries for said network application, said system blocks access between the network application and the Internet. 